package com.jinmdz.fmis.api.api.model.mourn;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.constant.EDictCode;
import com.jinmdz.fmis.dao.base.BaseItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.Date;

/**
 * 告别厅礼厅房间信息
 *
 * @author LiCongLu
 * @date 2020-03-08 18:09
 */
@ApiModel(value = "告别厅礼厅房间信息", description = "告别厅礼厅房间信息")
public class MournCeremonyFarewellHallItem extends BaseItem {

    /**
     * 礼厅类型编码
     */
    @ApiModelProperty(value = "礼厅类型编码", name = "hallTypeCode", position = 1)
    @JsonIgnore
    private Integer hallTypeCode;

    /**
     * 礼厅类型编码
     */
    @ApiModelProperty(value = "礼厅类型编码", name = "hallType", position = 2)
    @AnDict(dict = EDictCode.HALL_TYPE, ref = "hallTypeCode")
    private String hallType;

    /**
     * 礼厅编码
     */
    @ApiModelProperty(value = "礼厅编码", name = "hallCode", position = 3)
    private String hallCode;

    /**
     * 禁用状态
     */
    @ApiModelProperty(value = "禁用状态", name = "disableState", position = 4)
    private Integer disableState;

    /**
     * 业务主键
     */
    @ApiModelProperty(value = "业务主键", name = "businessId", position = 5)
    private Integer businessId;

    /**
     * 预约入厅时间
     */
    @ApiModelProperty(value = "预约入厅时间", name = "appointmentInTime", position = 6)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date appointmentInTime;

    /**
     * 预约出厅时间
     */
    @ApiModelProperty(value = "预约出厅时间", name = "appointmentOutTime", position = 7)
    @JsonIgnore
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date appointmentOutTime;

    /**
     * 流程状态
     */
    @ApiModelProperty(value = "流程状态", name = "processStateCode", position = 8)
    @JsonIgnore
    private Integer processStateCode;

    /**
     * 流程状态
     */
    @ApiModelProperty(value = "流程状态", name = "processState", position = 9)
    @AnDict(dict = EDictCode.HALL_STATUS, ref = "processStateCode")
    private String processState;

    /**
     * 业务编码
     */
    @ApiModelProperty(value = "业务编码", name = "businessCode", position = 10)
    @JsonIgnore
    private String businessCode;

    /**
     * 逝者姓名
     */
    @ApiModelProperty(value = "逝者姓名", name = "deadName", position = 11)
    private String deadName;

    /**
     * 在无占用时,后续下一个最近的预约入厅时间
     */
    @ApiModelProperty(value = "在无占用时,后续下一个最近的预约入厅时间", name = "nextInTime", position = 12)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date nextInTime;

    /**
     * 当天预约入厅时间列表
     */
    @ApiModelProperty(value = "当天预约入厅时间列表", name = "appointmentList", position = 13)
    private ArrayList<String> appointmentList;

    public Integer getHallTypeCode() {
        return hallTypeCode;
    }

    public MournCeremonyFarewellHallItem setHallTypeCode(Integer hallTypeCode) {
        this.hallTypeCode = hallTypeCode;
        return this;
    }

    public String getHallType() {
        return hallType;
    }

    public MournCeremonyFarewellHallItem setHallType(String hallType) {
        this.hallType = hallType;
        return this;
    }

    public String getHallCode() {
        return hallCode;
    }

    public MournCeremonyFarewellHallItem setHallCode(String hallCode) {
        this.hallCode = hallCode;
        return this;
    }

    public Integer getDisableState() {
        return disableState;
    }

    public MournCeremonyFarewellHallItem setDisableState(Integer disableState) {
        this.disableState = disableState;
        return this;
    }

    public Integer getBusinessId() {
        return businessId;
    }

    public MournCeremonyFarewellHallItem setBusinessId(Integer businessId) {
        this.businessId = businessId;
        return this;
    }

    public Date getAppointmentInTime() {
        return appointmentInTime;
    }

    public MournCeremonyFarewellHallItem setAppointmentInTime(Date appointmentInTime) {
        this.appointmentInTime = appointmentInTime;
        return this;
    }

    public Date getAppointmentOutTime() {
        return appointmentOutTime;
    }

    public MournCeremonyFarewellHallItem setAppointmentOutTime(Date appointmentOutTime) {
        this.appointmentOutTime = appointmentOutTime;
        return this;
    }

    public Integer getProcessStateCode() {
        return processStateCode;
    }

    public MournCeremonyFarewellHallItem setProcessStateCode(Integer processStateCode) {
        this.processStateCode = processStateCode;
        return this;
    }

    public String getProcessState() {
        return processState;
    }

    public MournCeremonyFarewellHallItem setProcessState(String processState) {
        this.processState = processState;
        return this;
    }

    public String getBusinessCode() {
        return businessCode;
    }

    public MournCeremonyFarewellHallItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getDeadName() {
        return deadName;
    }

    public MournCeremonyFarewellHallItem setDeadName(String deadName) {
        this.deadName = deadName;
        return this;
    }

    public Date getNextInTime() {
        return nextInTime;
    }

    public MournCeremonyFarewellHallItem setNextInTime(Date nextInTime) {
        this.nextInTime = nextInTime;
        return this;
    }

    public ArrayList<String> getAppointmentList() {
        return appointmentList;
    }

    public MournCeremonyFarewellHallItem setAppointmentList(ArrayList<String> appointmentList) {
        this.appointmentList = appointmentList;
        return this;
    }
}
